﻿import os, pickle, sys, os
from twython import Twython
from PyQt4 import QtGui, QtCore


class NVTwi(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

    def authorization(self, filename="data"):
        # получение необходимых данных из файла
        __file = open(filename, "rb")
        data = pickle.load(__file)
        __file.close()

        # Авторизация приложения
        twitter = Twython(data["consumer key"], data["consumer secret"])
        auth = twitter.get_authentication_tokens()

        os.startfile(auth["auth_url"])
    
        oauth_verifier, ok = QtGui.QInputDialog.getText(self, "Введите сюда код, указанный на сайте, чтобы авторизовать приложение", "Код: ")
            if ok:
                twitter = Twython(data["consumer key"], data["consumer secret"], auth["oauth_token"], auth["oauth_token_secret"])
                final_step = twitter.get_authorized_tokens(oauth_verifier)
            else:
                self.close()

        # Сохраняем необходимые данные
        __file = open(auth", "wb")
        pickle.dump(final_step, __file)
        __file.close()

    def check(self, filename):
        file = open(filename, "rb")
        data = pickle.load(file)
        file.close()

        if os.path.exists("auth"):
            if os.path.isfile("auth"):
                file = open("auth", "rb")
                auth = pickle.load(file)
                file.close()

                try:
                    twitter = Twython(data["consumer key"], data["consumer secret"], auth["oauth_token"], auth["oauth_token_secret"])
                except KeyError:
                    return False
                
                try:
                    twitter.verify_credentials()
                except Exception:
                    return False

                return True
            else:
                return False
        return False